package javase.lambda;

/**
 * 本 demo 主要演示 lambda 表达式最简写法以及注意事项
 */
class LambdaDemo {

    public static void main(String[] args) {
        //lambda表达式主要作用就是对匿名内部类进行 最简便写法

        //1.初始写法
//        Swimming swimming = new Swimming() {
//            @Override
//            public void swim() {
//                System.out.println("游泳....");
//            }
//        };

        //2.简写
//        Swimming swimming = () -> {
//                System.out.println("游泳....");
//        };

        //最简写法
        go(()->System.out.println("游泳...."));

    }

    public static void go(Swimming s){
        System.out.println("开始...");
        s.swim();
        System.out.println("结束...");
    }

}

//建议：将需要通过lambda进行简写的匿名内部类接口加注解 声明成 函数接口
@FunctionalInterface
interface Swimming{

    public void swim();

}
